﻿using System;
using System.Web.UI;
using Sebra.Academico.Trilhas.BP;
using Sebrae.Academico.Trilhas.Dominio.Classes;

namespace Sebrae.Academico.Trilhas.WebForms.Cadastros.FormaAprendizagem
{
    public partial class EdicaoFormaAprendizagem : System.Web.UI.Page
    {
        private TrilhaFormaAprendizagem trilhaFormaAprendizagemEdicao = null;
        private ManterTrilhaFormaAprendizagem manterTrilhaFormaAprendizagem = new ManterTrilhaFormaAprendizagem();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["TrilhaFormaAprendizagemEdit"] != null)
                {
                    int idTrilhaFormaAprendizagem = int.Parse(Session["TrilhaFormaAprendizagemEdit"].ToString());
                    trilhaFormaAprendizagemEdicao = manterTrilhaFormaAprendizagem.ObterTrilhaFormaAprendizagemPorID(idTrilhaFormaAprendizagem);
                    PreencherCampos(trilhaFormaAprendizagemEdicao);
                }
            }
        }

        private void PreencherCampos(TrilhaFormaAprendizagem trilhaFormaAprendizagem)
        {
            if (trilhaFormaAprendizagem != null)
            {
                txtNome.Text = trilhaFormaAprendizagem.Nome;
            }
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            //Todo: - Este page.isvalid so faz sentido com o uso dos validators
            //Ex: RequiredFieldValidator, RegularExpressionValidator
            if (Page.IsValid)
            {
                try
                {

                    trilhaFormaAprendizagemEdicao = new TrilhaFormaAprendizagem();

                    if (Session["TrilhaFormaAprendizagemEdit"] == null)
                    {
                        manterTrilhaFormaAprendizagem = new ManterTrilhaFormaAprendizagem();
                        trilhaFormaAprendizagemEdicao = ObterObjetoTrilhaFormaAprendizagem();
                        manterTrilhaFormaAprendizagem.IncluirTrilhaFormaAprendizagem(trilhaFormaAprendizagemEdicao);
                        LimparCampos();
                    }
                    else
                    {
                        trilhaFormaAprendizagemEdicao = ObterObjetoTrilhaFormaAprendizagem();
                        trilhaFormaAprendizagemEdicao.ID = int.Parse(Session["TrilhaFormaAprendizagemEdit"].ToString());
                        manterTrilhaFormaAprendizagem.AlterarTrilhaFormaAprendizagem(trilhaFormaAprendizagemEdicao);
                        Session.Remove("TrilhaFormaAprendizagemEdit");
                    }

                    Response.Redirect("ListarFormaAprendizagem.aspx");

                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }

        private TrilhaFormaAprendizagem ObterObjetoTrilhaFormaAprendizagem()
        {
            trilhaFormaAprendizagemEdicao = new TrilhaFormaAprendizagem();

            if (!string.IsNullOrWhiteSpace(txtNome.Text)) trilhaFormaAprendizagemEdicao.Nome = txtNome.Text.Trim();

            return trilhaFormaAprendizagemEdicao;
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("ListarFormaAprendizagem.aspx");
        }

        private void LimparCampos()
        {
            txtNome.Text = "";
        }

    }
}